Lab Overview

Simulated step response — PV (Fig. 1)
Filtered PV step response (Fig. 2)
Implemented PV step response (Fig. 3)

Controller Design

The desired transient response (t_p = 0.20 s, PO = 5%) was converted to second-order system parameters: ζ = 0.69 and ω_n = 21.7 rad/s. The PV controller gains were then derived from the closed-loop pole placement equations:

k_p = τω_n² / K = 7.82 V/rad     k_v = (2ζω_nτ − 1) / K = −0.157 V·s/rad

Maximum allowable k_p was bounded by the amplifier limit V_max = 10 V: k_p,max = 28.7 V/rad for a 20° step, 12.7 V/rad for 45°. The ramp steady-state error under PV control (Type-1 system) was predicted as e_ss = R(1 + Kk_v) / (Kk_p) = 0.214 rad. To eliminate this, an integral gain k_i was designed: k_i = (V_max − k_p·e_ss) / (e_ss·t) = 38.9 V/(rad·s) for t = 1 s.

Ramp response — PV simulation (Fig. 4)
Ramp response — PV hardware (Fig. 5)
PIV ramp — near-zero e_ss (Fig. 7)

Results & Analysis

Test t_p (s) PO (%) e_ss (rad)
Step sim (PV)0.1945.00
Step sim (filtered PV)0.2045.70.002
Step impl (PV)0.1707.860.004
Ramp sim (PV)0.213
Ramp impl (PV)0.186
Ramp sim (PIV)0.005
Ramp impl (PIV)0.007
Controller gains and design calculations
PV vs PIV ramp error comparison
Full summary table (Table 1)

MATLAB Code

The plotting script overlaid the setpoint and measured/simulated position responses. Full script: Lab 3 Appendix A.

% Plot setpoint vs measured position
figure()
plot(data_pos(:,1), data_pos(:,2))   % setpoint
hold on
plot(data_pos(:,1), data_pos(:,3))   % measured/simulated
xlabel('Time (s)')
ylabel('Load Shaft Position (rad)')
title('Measured SRV02 PV ramp response')
legend('Setpoint Position', 'Simulated Position')

% Steady-state error calculation
index = (time >= 4.9) & (time <= 9.9);
r_ss  = mean(data_pos(index, 2));
y_ss  = mean(data_pos(index, 3));
e_ss  = r_ss - y_ss;    % ≈ 0.186 rad (PV ramp), 0.007 rad (PIV ramp)
Full MATLAB script — Lab 3 Appendix A
Simulink PV controller block diagram
PIV controller with integral block

← Back to Dynamics & Control Labs